#ifndef MAD_DURATION_H
#define MAD_DURATION_H

#include <stdio.h>
#include <stdbool.h>
#include <mad.h>

/**
 * @brief MP3文件信息结构体
 */
typedef struct mp3_info {
    unsigned long frame_count;   // MP3音频帧数
    double duration;             // 总时长(秒)
    int sample_rate;             // 采样率
    int bitrate;                 // 比特率(kbps)
    int channels;                // 通道数
} mp3_info_t;

/**
 * @brief 使用MAD库计算MP3文件的帧数和时长
 * @param file MP3文件指针
 * @param info 用于存储MP3信息的结构体指针
 * @param verbose 是否显示详细信息
 * @return 成功返回true，失败返回false
 */
bool get_mp3_info(FILE *file, mp3_info_t *info, bool verbose);

/**
 * @brief 秒数转换为时分秒格式字符串
 * @param seconds 总秒数
 * @param buffer 输出缓冲区
 * @param buffer_size 缓冲区大小
 */
void format_duration(double seconds, char *buffer, size_t buffer_size);

#endif // MAD_DURATION_H
